// pages/list/list.js
Page({
  //1.要在list页面获取到index的九宫格对应的id值，使用发送求获取List数据
  //2.要在list这个页面获取index的九宫格的标题

  //补充跳转到detail页面的需求
  //1.把view标签改为navigator
  //2.点击第一个列表，把当前的数据存储到本地
  //跳转到detail页面的思路
  //1 把view标签改为navigator
  //2 先给navigator标签的自定义属性存储每一项的数据，再给navigator注册一个点击事件，获取自定义属性的值
  //3 把获取到的信息存储到storage本地

  /**
   * 页面的初始数据
   */
  data: {
    // 列表数据
    list:[],
    //定义一个存储id的变量
    id:"",
    //分页请求的页数
    page:1,
    //每一页的显示条数
    limit:8,
    //定义一个标识
     flag : true
  },

  //获取详情数据的函数
  handleGetDetail(e){
    //console.log(e)
    //把获取到的信息存储到storage本地
    var data=e.currentTarget.dataset.listdetail;

    wx.setStorage({
      key: 'listDetail',
      //data:data = data
      data
    })
  },


  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
   //options里面存储着页面跳转过来时，所携带的信息
   //console.log(options)
   //把options的id写入data的id里面
    this.setData({
      id:options.id
    })
   //动态设置当前页面的标题
    wx.setNavigationBarTitle({
      title: options.title
    })
   //$.ajax({url:'',type:'get'})
   //发送请求 获取数据
   //模板字符串 ``在里面如果有变量，就使用${}包裹
   wx.request({
     url: `https://locally.uieee.com/categories/${this.data.id}/shops `,
     method:"get",
     data:{
       _page:1,
       _limit:8
     },
     success:(res)=>{
       //使用箭头函数，为了把函数里面this指向外层
       //console.log(res.data)
       //把数据写入data里面list
       this.setData({
         list:res.data
       })
     }
   })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    
    //1.每次上拉的时候，发送请求获取数据
    //2.拿到的数据，先把list从data里面获取，然后追加到List的后面，最后再把追加的list写入
    //3.每一次往上拉的时候， this.data.page就要+1，加完后继续写回data(这个需求要在请求之前处理)
    //4.当上拉加载值，返回的res.data.length小于每页显示的条数thia.data.limit,则证明数据已经加载完毕


   //定义一个标识 如果在这里定义，每一次上滑就会重新执行onReachBottom事件，flag的值为true
  //var flag = true;

   if(this.data.flag){    
     var page = this.data.page;
     //console.log(page)
     page++;
     this.setData({
       page
     })
   }else{
     //flag=flase阻止代码执行
     wx.showToast({
       title: '我是有底线的',
       icon:"none",
       duration:2000
     })
     return;
   }
   


    //发送请求 获取数据
    //模板字符串 ``在里面如果有变量，就使用${}包裹
    wx.request({
      url: `https://locally.uieee.com/categories/${this.data.id}/shops `,
      method: "get",
      data: {
        _page: this.data.page,
        _limit: this.data.limit
      },
      success: (res) => {
        //console.log(res.data)
        //2.拿到的数据，先把list从data里面获取，然后追加到List的后面，最后再把追加的list写入
        var list=this.data.list;
        // for(var i=0;i<res.data.length;i++){
        //   list.push(res.data[i])
        // }
        //es6语法
        var list=[...this.data.list,...res.data]
        
        //把数据写入data里面list
        this.setData({
          list: res.data
        })
        //console.log(this.data.list)
        //console.log(res.data.length, this.data.limit)
        if(res.data.length<this.data.limit){
            this.setData({
              flag:false
            })
        }

      }
    })
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})